package com.example.common

import android.content.Context
import android.content.res.AssetManager
import android.graphics.Typeface
import android.util.AttributeSet
import android.widget.TextView
import androidx.appcompat.widget.AppCompatTextView

/**
 * 带字体的TextView
 * */

class FontTextView : AppCompatTextView {

    private var defaultFont ="FZLanTingHeiS-DB1-GB-Regular.TTF"

    /**
     * 代码中创建中需要调用
     * */

    constructor(context : Context):super(context){
        initTypeFace(context)
    }

    /**
     * 代码中定义组件需要调用
     * */

    constructor(context : Context,attrs: AttributeSet):super(context,attrs){
        if(attrs!=null){
            var typeArray= context.obtainStyledAttributes(attrs, R.styleable.FontTextView)
            var fontName= typeArray.getString(R.styleable.FontTextView_fontName)
            if (fontName!= null){
                defaultFont=fontName.toString()
            }
            //存在Id读取文件需要回收
            typeArray.recycle()
        }

        initTypeFace(context)
    }
    /**
     * 布局中调用
     * */

    constructor(context : Context,attrs: AttributeSet,defStyleAttr: Int):super(context,attrs,defStyleAttr){
        initTypeFace(context)
    }

    /**
     * 初始化字体文件
     * */

    private fun initTypeFace(context: Context) {
        //1获取Assets文件下的字体文件需要使用AssetManager
        var assetsMqr : AssetManager=context.assets
        //2获取字体文件并创建TypeFace对象
        var font =Typeface.createFromAsset(assetsMqr,"fonts/${defaultFont}")

        typeface=font

    }

}